JavaScript 设计模式之观察者模式
介绍
- 发布 & 订阅
- 一对多(1对N)
UML
代码演示
1 | // 主题,保存状态,状态改变后触发说有观察者对象 |
场景
网页事件绑定
1 | <button id="btn1">btn</button> |
Promise
1 | function loadImg(src) { |
jQuery callbacks
1 | var callbacks = $.Callbacks() |
nodejs 自定义事件
1 | const EventEmitter = require('events').EventEmitter |
另外一个例子:
1 | const EventEmitter = require('events').EventEmitter |
nodejs 处理 http 请求; 多进程通讯
Vue watch
Vue 和 React 生命周期触发
设计原则验证
- 主题和观察者分离,不是主动触发而是被动监听,两者解耦
- 符合开放封闭原则